home *** CD-ROM | disk | FTP | other *** search
- C This Fortran program should be run on the mainframe in conjunctionBOO00010
- C with a Basic program (HP86BOOT) on the HP86 to transfer BOO00020
- C HP86KERM.BOO to the HP86 and store it as 'KERMIT BOO'. this BOO00030
- C program uses a very rudimentary technique to try to insure that BOO00040
- C the characters it sends arrive correctly. It just sends a count BOO00050
- C of the number of characters sent after each line. In this way anyBOO00060
- C errors of character loss or insertion will be caught. If a BOO00070
- C character is just corrupted it will not be caught. Hopefully if BOO00080
- C this happens it will be in a non-critical part of the 'KERMIT BOO'BOO00090
- C file. The reason a simple checksum was not used was so that this BOO00100
- C program could run on machines using either EBCDIC or ASCII BOO00110
- C characters. This program should take about thirty minutes to run.BOO00120
- C BOO00130
- C This program assumes that 5 and 6 are directed to the terminal andBOO00140
- C 7 is directed to the file HP86KERM.BOOT. BOO00150
- C
- C *Original Program* for use with a PC running MS-DOS by:- BOO00160
- C Bill Catchings, Columbia University Center for Computing ActivitieBOO00170
- C June 1984 (Revised September 1984) BOO00180
- C BOO00190
- C *REVISED* at Sheffield City Polytechnic by R.L.Horton 22Aug85:- BOO00200
- C 1) FORTRAN G1 cannot accept "I-1" on a WRITE statement. BOO00210
- C 2) Insert a call to NULIN and to RETYPE. BOO00220
- C *REVISED* at Sheffield City Polytechnic by R.L.Horton 10Apr86:- BOO00020
- C 1) NULIN has been rename to NULLIN. BOO00021
- C 2) For some unknown reason this program started issuing a double BOO00021
- C read to the terminal at statement 100/3 (at start-up)!
- C The FORMAT statement 200 has been corrected to stop it.
- C 3) The FILEDEF for the terminal has been changed to RECFM F80. BOO00021
- C
- C *CHANGED* for use with HP86BOOT at Sheffield City Polytechnic
- C By M.J.Rootes 11Apr86:-
- C 1) Accept lines up to 79 characters long
- C 2) Reverse character count as HP86 BASIC lines contain spaces
- C 3) Insert Linefeed between Line and character count
- C
-
- INTEGER LINE(79), ACK(4), CHECK, OK, SPACE, COMMA BOO00230
- CALL NULLIN BOO00240
- CALL RETYPE BOO00250
- BOO00260
- WRITE(6,100) BOO00270
- 100 FORMAT(' Ready to transfer data, now run HP86BOOT on the HP86.') BOO00280
- BOO00290
- C Get characters for constants (character constants are rough in BOO00300
- C some FORTRANs). BOO00310
- READ (5,200) OK, SPACE, COMMA, ACK BOO00320
- 200 FORMAT(A1,A1,A1,4A1) BOO00330
- C The following statement has been changed from GO TO 30. BOO00340
- GO TO 20 BOO00350
- BOO00360
- C Get terminal handshake. BOO00370
- 10 READ (5,200)ACK BOO00380
- BOO00390
- C Did the other side like it? (Did they send OK?) BOO00400
- IF (ACK(1) .NE. OK) GO TO 50 BOO00410
- BOO00420
- C Yes, get new line from file. BOO00430
- 20 READ (7,300,END=99)LINE BOO00440
- 300 FORMAT(79A1) BOO00450
- BOO00460
- C Count the characters as some rudimentary check for noise. BOO00470
- I = 79 BOO00480
- 30 IF (LINE(I) .NE. SPACE) GO TO 50 BOO00490
- I = I - 1 BOO00500
- GO TO 30 BOO00510
- BOO00520
- C Put in a comma followed by the count. BOO00530
- C 40 LINE(I) = COMMA BOO00540
- BOO00550
- C Write to TTY. BOO00560
- 50 WRITE (6,400)LINE,I BOO00580
- 400 FORMAT(79A1/I2) BOO00590
- GOTO 10 BOO00620
- BOO00630
- C Send good-bye message. BOO00640
- 99 WRITE (6,500) BOO00650
- 500 FORMAT(10('&')/'10') BOO00660
- BOO00670
- STOP BOO00680
- END BOO00690
-